package cn.wolfcode.business.service;

import cn.wolfcode.business.domain.BusAppointment;
import cn.wolfcode.business.domain.BusServiceItem;
import cn.wolfcode.business.domain.BusStatement;
import cn.wolfcode.business.mapper.BusStatementMapper;
import org.springframework.beans.factory.annotation.Autowired;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public interface BusStatementService {

    /**
     * 查询所有的结算单列表
     * @param busStatement
     * @return
     */
    List<BusServiceItem> getList(BusStatement busStatement);

    /**
     * 根据id查询到一条结算单记录
     * @param id
     * @return
     */
    BusStatement getStatement(Long id);

    /**
     * 没有预约直接到店的用户，填写表单来生成结算单
     * @param busStatement
     * @return
     */
    Integer add(BusStatement busStatement);

    /**
     * 通过预约单生成结算单的
     * @param busAppointment
     * @return
     */
    Long generateStatement(BusAppointment busAppointment);

    /**
     * 修改结算单信息
     * @param busStatement
     * @return
     */
    Integer update(BusStatement busStatement);

    /**
     * 删除结算单信息（软删除）
     * @param id
     * @return
     */
    Integer delete(Long id);


    Integer Modify(Long statementId,BigDecimal totalAmount, BigDecimal totalQuantity, BigDecimal discountPrice);

    int payUpdateStatement(Long statementId, Long userId, Date date, Integer status);
}
